﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SILAS.BL;
using SILAS.Entidades;
using Microsoft.Practices.Unity;
using SILAS.UI.Models;

namespace SILAS.UI.Controllers
{
    public class FichaController : Controller
    {
        //
        // GET: /Ficha/
        [Authorize(Roles = "AdministradorSistema,AdministradorInformacion")]
        public ActionResult Index()
        {
                       
            // ************* INDICADORES **************************
            var it1 = new List<Indicador>
            {
                new Indicador{ descripcion ="Organización con personería jurídica", puntaje = 10},
                new Indicador{ descripcion ="Organización sin personería jurídica pero en vías de formalización", puntaje = 8},
                new Indicador{ descripcion ="Organización sin personería jurídica y sin trámites de formalización", puntaje = 4},
                new Indicador{ descripcion ="Sin organización", puntaje = 0}

            };

            var it2 = new List<Indicador>
            {
                new Indicador{ descripcion ="Aprobado por la Asamblea general", puntaje = 8},
                new Indicador{ descripcion ="Tiene estatuto pero no está aprobado por la Asamblea General", puntaje = 4},
                new Indicador{ descripcion ="No tiene estatuto", puntaje = 0}

            };

            var it3 = new List<Indicador>
            {
                new Indicador{ descripcion ="Acuerdos registrados en Libro de Actas", puntaje = 8},
                new Indicador{ descripcion ="Acuerdos no registrados en Libro de Actas", puntaje = 4},
                new Indicador{ descripcion ="Sin Libro de Actas", puntaje = 0}

            };

            var it4 = new List<Indicador>
            {
                new Indicador{ descripcion ="Mas de la mitad de los miembros", puntaje = 6},
                new Indicador{ descripcion ="Menos de la Mitad de los Miembros", puntaje = 0}

            };

            var it5 = new List<Indicador>
            {
                new Indicador{ descripcion ="Al menos 1 vez al mes", puntaje = 4},
                new Indicador{ descripcion ="No se reúnen", puntaje = 0}

            };

            var it6 = new List<Indicador>
            {
                new Indicador{ descripcion ="Al menos 1 vez en el ultimo año", puntaje = 4},
                new Indicador{ descripcion ="No han realizado asambleas en el ultimo año", puntaje = 0}

            };

            //***********************************************

            var it7 = new List<Indicador>
            {
                new Indicador{ descripcion ="Si Cubre", puntaje = 8},
                new Indicador{ descripcion ="No Cubre", puntaje = 6},
                new Indicador{ descripcion ="Sin cuota familiar", puntaje = 0}
               
            };

            var it8 = new List<Indicador>
            {
                new Indicador{ descripcion ="Si realizan otros aportes", puntaje = 6},
                new Indicador{ descripcion ="No realizan otros aportes", puntaje = 0}

            };

            var it9 = new List<Indicador>
            {
                new Indicador{ descripcion ="Si realizan", puntaje = 6},
                new Indicador{ descripcion ="No realizan", puntaje = 0}

            };

            var it10 = new List<Indicador>
            {
                new Indicador{ descripcion ="Tienen ahorros de dinero", puntaje = 6},
                new Indicador{ descripcion ="No tienen", puntaje = 0}

            };

            var it11 = new List<Indicador>
            {
                new Indicador{ descripcion ="En una cuenta bancaria", puntaje = 4},
                new Indicador{ descripcion ="En poder de algun directivo", puntaje = 0}

            };

            //******************************************************

            var it12 = new List<Indicador>
            {
                new Indicador{ descripcion ="Mayor a 80%", puntaje = 10},
                new Indicador{ descripcion ="Mayor a 50%", puntaje = 8},
                new Indicador{ descripcion ="Mayor a 25%", puntaje = 6},
                new Indicador{ descripcion ="Mayor a 1%", puntaje = 4},
                new Indicador{ descripcion ="No pagan", puntaje = 0}

            };

            var it13 = new List<Indicador>
            {
                new Indicador{ descripcion ="Si aplican cortes de servicio", puntaje = 10},
                new Indicador{ descripcion ="No es necesario aplicar cortes", puntaje = 10},
                new Indicador{ descripcion ="No aplican cortes", puntaje = 0}

            };

            var it14 = new List<Indicador>
            {
                new Indicador{ descripcion ="Si aplican multas/otras sanciones", puntaje = 10},
                new Indicador{ descripcion ="No es necesario aplicar multas", puntaje = 10},
                new Indicador{ descripcion ="No aplican multas/otras sanciones", puntaje = 0}

            };

            //************************************************************

            var it15 = new List<Indicador>
            {
                new Indicador{ descripcion ="Libro Caja al dia", puntaje = 10},
                new Indicador{ descripcion ="Libro Caja con atrasos de 2 a 6 meses", puntaje = 8},
                new Indicador{ descripcion ="Libro caja con atrasos de 7 a mas meses", puntaje = 4},
                new Indicador{ descripcion ="Libro caja sin registros", puntaje = 2},
                new Indicador{ descripcion ="Sin Libro Caja", puntaje = 0}

            };

            var it16 = new List<Indicador>
            {
                new Indicador{ descripcion ="Llevan registros auxiliares", puntaje = 6},
                new Indicador{ descripcion ="No llevan registros auxiliares", puntaje = 2}

            };

            var it17 = new List<Indicador>
            {
                new Indicador{ descripcion ="Mantienen registros de bienes", puntaje = 6},
                new Indicador{ descripcion ="No mantienen registros de bienes", puntaje = 2}
            };

            //*********************************************************************

            var it18 = new List<Indicador>
            {
                new Indicador{ descripcion ="Personal operativo contratado", puntaje = 8},
                new Indicador{ descripcion ="Personal operativo con algún tipo de compensación", puntaje = 6},
                new Indicador{ descripcion ="Trabajo operativo add honorem", puntaje = 4},
                new Indicador{ descripcion ="No tienen tecnico operador", puntaje = 0}

            };

            var it19 = new List<Indicador>
            {
                new Indicador{ descripcion ="Disponen de utiles vasicos para la administracion", puntaje = 6},
                new Indicador{ descripcion ="Tienen limitación en la administración por falta de utiles", puntaje = 4},
                new Indicador{ descripcion ="No cuentan con útiles", puntaje = 0}

            };

            var it20 = new List<Indicador>
            {
                new Indicador{ descripcion ="Toman acción en una semana o menos", puntaje = 6},
                new Indicador{ descripcion ="Toman acción en un plazo mayor a una semana", puntaje = 4},
                new Indicador{ descripcion ="No toman acción", puntaje = 0}

            };

            //********************************************************************

            var it21 = new List<Indicador>
            {
                new Indicador{ descripcion ="Mayor a 75%", puntaje = 10},
                new Indicador{ descripcion ="Mayor a 50%", puntaje = 8},
                new Indicador{ descripcion ="Mayor a 25%", puntaje = 6},
                new Indicador{ descripcion ="Mayor a 1%", puntaje = 2},
                new Indicador{ descripcion ="No asisten", puntaje = 0}

            };

            var it22 = new List<Indicador>
            {
                new Indicador{ descripcion ="Fiscalización al menos una vez al mes", puntaje = 10},
                new Indicador{ descripcion ="Fiscalización al menos una vez cada tres semanas", puntaje = 8},
                new Indicador{ descripcion ="Fiscalización al menos una vez cada seis meses", puntaje = 6},
                new Indicador{ descripcion ="No fizcaliza", puntaje = 0}

            };

            // ****************** ITEMS ***********************
            var ficha = new List<Item> 
                {
                    new Item {descripcion = "Estado de la Organizacion", indicador= it1},
                    new Item {descripcion = "Legitimidad del Estatuto", indicador= it2},
                    new Item {descripcion = "Formalidad para tomar acuerdos de Consejo Directivo", indicador= it3},
                    new Item {descripcion = "Asistencia de los miembros del Consejo a las sesiones", indicador= it4},
                    new Item {descripcion = "Reuniones del Consejo Directivo", indicador= it5},
                    new Item {descripcion = "Convocatorias a asambleas", indicador= it6},

                    new Item {descripcion = "Valor de la cuota cubre gastos de operacion, mantenimiento y operacion", indicador= it7},
                    new Item {descripcion = "Realizan aportes extraordinarios de dinero", indicador= it8},
                    new Item {descripcion = "realizan actividades para cubrir sus costos", indicador= it9},
                    new Item {descripcion = "Disponibilidad de ahorros", indicador= it10},
                    new Item {descripcion = "Resguardo de ahorros", indicador= it11},

                    new Item {descripcion = "Eficiencia de cobranza(usu que pagan / total usu * 100)", indicador= it12},
                    new Item {descripcion = "Aplican cortes de servicio", indicador= it13},
                    new Item {descripcion = "Aplican multas u otras sanciones", indicador= it14},

                    new Item {descripcion = "Estado de registros contables", indicador= it15},
                    new Item {descripcion = "Estado de resgistros auxiliares", indicador= it16},
                    new Item {descripcion = "Control de bienes", indicador= it17},

                    new Item {descripcion = "Situación del personal operativo", indicador= it18},
                    new Item {descripcion = "Actividades administrativas", indicador= it19},
                    new Item {descripcion = "Capacidad para responder a siuaciones adversas", indicador= it20},

                    new Item {descripcion = "Asistencia de usuarios a asambleas Generales", indicador= it21},
                    new Item {descripcion = "Nivel de Fiscalizacion (a través de un Organo de fiscalizacion)", indicador= it22}
                };

            ViewData["it1"] = new SelectList(it1, "puntaje", "descripcion");
            ViewData["it2"] = new SelectList(it2, "puntaje", "descripcion");
            ViewData["it3"] = new SelectList(it3, "puntaje", "descripcion");
            ViewData["it4"] = new SelectList(it4, "puntaje", "descripcion");
            ViewData["it5"] = new SelectList(it5, "puntaje", "descripcion");
            ViewData["it6"] = new SelectList(it6, "puntaje", "descripcion");

            ViewData["it7"] = new SelectList(it7, "puntaje", "descripcion");
            ViewData["it8"] = new SelectList(it8, "puntaje", "descripcion");
            ViewData["it9"] = new SelectList(it9, "puntaje", "descripcion");
            ViewData["it10"] = new SelectList(it10, "puntaje", "descripcion");
            ViewData["it11"] = new SelectList(it11, "puntaje", "descripcion");

            ViewData["it12"] = new SelectList(it12, "puntaje", "descripcion");
            ViewData["it13"] = new SelectList(it13, "puntaje", "descripcion");
            ViewData["it14"] = new SelectList(it14, "puntaje", "descripcion");

            ViewData["it15"] = new SelectList(it15, "puntaje", "descripcion");
            ViewData["it16"] = new SelectList(it16, "puntaje", "descripcion");
            ViewData["it17"] = new SelectList(it17, "puntaje", "descripcion");

            ViewData["it18"] = new SelectList(it18, "puntaje", "descripcion");
            ViewData["it19"] = new SelectList(it19, "puntaje", "descripcion");
            ViewData["it20"] = new SelectList(it20, "puntaje", "descripcion");

            ViewData["it21"] = new SelectList(it21, "puntaje", "descripcion");
            ViewData["it22"] = new SelectList(it22, "puntaje", "descripcion");
            
            
            return PartialView();
        }

        //
        // GET: /Ficha/Details/5

        public ActionResult Details(int id)
        {
            return View();
        }

        //
        // GET: /Ficha/Create

        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /Ficha/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        
        //
        // GET: /Ficha/Edit/5
 
        public ActionResult Edit(int id)
        {
            return View();
        }

        //
        // POST: /Ficha/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Ficha/Delete/5
 
        public ActionResult Delete(int id)
        {
            return View();
        }

        //
        // POST: /Ficha/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}
